package modelApp

import daos.VillanoDAO
import java.util.List
import model.Villano
import org.apache.wicket.markup.html.panel.FeedbackPanel

class EditorVillano extends AbstractEditor<Villano> {
	
	@Property String nombre
	
	@Property var VillanoDAO villanos
	
	
	@Property var String sexo = ""
	@Property var String sexoSeleccionado = ""
	@Property var List<String> sexosPosibles = newArrayList => [add("Masculino") add("Femenino")]

	@Property var String nuevaSeña = ""
	@Property var List<String> señasParticulares
	
	@Property var String nuevoHobbie = ""
	@Property var List<String> hobbies
	
	@Property var Villano villano
	
	
	new(VillanoDAO _villanos){
		villanos = _villanos
	}
		
	def addSexo(){
		sexo = sexoSeleccionado
	}
		
	override prepararElemento(Villano _villano){
		nombre = _villano.nombre
		sexo = _villano.sexo
		señasParticulares = _villano.senhas
		hobbies = _villano.hobbies
		villano = _villano
	}

	def agregarSeña(){
		señasParticulares += nuevaSeña
	}
	
	def agregarHobbie(){
		hobbies += nuevoHobbie	
	}
	
	override save() {
		villano.nombre = nombre
		villanos.quitar(villano)
		villanos.agregar(villano)
	}
	
	override def validate(FeedbackPanel fbpanel){
		validateSexo(fbpanel)
		validateSeñasParticulares(fbpanel)
		validateHobbies(fbpanel) 
	}
	
	def validateSexo(FeedbackPanel fbpanel){
		if(sexo.isEmpty)
			fbpanel.error("Debe seleccionar un sexo")
	}
	
	def validateSeñasParticulares(FeedbackPanel fbpanel){
		if(señasParticulares.isEmpty)
			fbpanel.error("Debe agregar una seña particular")
	}
	
	def validateHobbies(FeedbackPanel fbpanel){
		if(hobbies.isEmpty)
			fbpanel.error("Debe agregar un hobbie")
	}

}